package btc.backend.servicios;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import btc.backend.process.ConnectionFactory;
import btc.model.Bloque;
import btc.model.Pallet;

public class BloqueAppl {

public List<Bloque> obtenerBloquesPorPallet(Pallet pallet){
		
		List<Bloque> bloques = new ArrayList<Bloque>();
		
		try {
			PreparedStatement getBloqueByPalletSt = ConnectionFactory.getConnection().
							prepareStatement("select ID,	ANCHO, ALTO, LARGO,CLASIFICACION from bloque where ID_PALLET = ?");
			
			getBloqueByPalletSt.setLong(1, pallet.getId());
		
			ResultSet r = getBloqueByPalletSt.executeQuery();
			
			while(r.next()){
				Bloque bloque = new Bloque(r.getLong(1),pallet, r.getInt(2), r.getInt(3), r.getInt(4),r.getString(5));
				bloques.add(bloque);
			}
			r.close();
		
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return bloques;
	}
	
	public List<Bloque> obtenerBloques(){
		
		PreparedStatement getBloquesSt;
		
		List<Bloque> bloques = new ArrayList<Bloque>();
		
		try {
			getBloquesSt = ConnectionFactory.getConnection().
						prepareStatement("select b.ID, ID_PALLET, ANCHO, ALTO, LARGO,b.CLASIFICACION," +
										" FECHA_PROCESO,p.CLASIFICACION,ID_MAQUINA" +
										" from bloque b, pallet p" +
										" where p.ID = b.ID_PALLET order by p.ID,b.ID");
					
			ResultSet r = getBloquesSt.executeQuery();
			
			while(r.next()){
				
				Pallet pallet = new Pallet(r.getInt(2),r.getDate(7),r.getString(8),r.getInt(9));
				Bloque bloque = new Bloque(r.getLong(1),pallet, r.getInt(3), r.getInt(4), r.getInt(5),r.getString(6));
				bloques.add(bloque);
			}
			r.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return bloques;
	}
	
}
